package com.jd.finance.core.controller.admin;

import com.jd.finance.core.service.LoanService;
import com.jd.finance.core.service.impl.AdminUtilsServiceImpl;
import com.jd.finance.result.BaseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@Api(tags = "业绩管理")
@Slf4j
@RestController
@RequestMapping("/admin/core/kpiManageCenter")
public class AdminKpiController {

    @Resource
    private AdminUtilsServiceImpl adminUtilsService;

    @Resource
    private LoanService loanService;

    @ApiOperation("根据uid获取当月业绩汇总")
    @GetMapping("/getSumKpiMonth")
    public BaseResult getSumKpiMonth(Integer gmId,Integer uid) {
        if (gmId==null || uid==null) {
            log.error("根据uid获取当月业绩汇总,提交信息为空!");
            return BaseResult.error().message("根据uid获取当月业绩汇总,提交信息为空!");
        }

        if (!adminUtilsService.isGM(gmId)) {
            log.error("登录用户非总经理身份!");
            return BaseResult.error().message("登录用户非总经理身份!");
        }

        if (!adminUtilsService.isSale(uid)) {
            log.error("该用户非业务员身份!");
            return BaseResult.error().message("该用户非业务员身份!");
        }

        return loanService.getSumKpiMonth(gmId,uid);
    }

    @ApiOperation("根据uid，获取当年业绩汇总")
    @GetMapping("/getSumKpiYear")
    public BaseResult getSumKpiYear(Integer gmId,Integer uid) {
        if (gmId==null || uid==null) {
            log.error("根据uid获取当年业绩汇总,提交信息为空!");
            return BaseResult.error().message("根据uid获取当年业绩汇总,提交信息为空!");
        }

        if (!adminUtilsService.isGM(gmId)) {
            log.error("登录用户非总经理身份!");
            return BaseResult.error().message("登录用户非总经理身份!");
        }

        if (!adminUtilsService.isSale(uid)) {
            log.error("该用户非业务员身份!");
            return BaseResult.error().message("该用户非业务员身份!");
        }
        return  loanService.getSumKpiYear(gmId,uid);
    }

    @ApiOperation("总经理查询当年业绩前三名")
    @GetMapping("/getKpiYearTopThree")
    public BaseResult getKpiYearTopThree(Integer uid) {
        if (uid==null) {
            log.error("总经理查询当年业绩前三名,提交信息为空!");
            return BaseResult.error().message("总经理查询当年业绩前三名,提交信息为空!");
        }

        if (!adminUtilsService.isGM(uid)) {
            log.error("登录用户非总经理身份!");
            return BaseResult.error().message("登录用户非总经理身份!");
        }

        return loanService.getKpiYearTopThree(uid);
    }

    @ApiOperation("根据银行id，以及月份，获取指定月份该银行成交的明细")
    @GetMapping("/getTradeInfo")
    public BaseResult getTradeInfo(Integer uid,Integer bid,Integer monthT) {
        if (uid==null || bid==null || monthT==null) {
            log.error("根据银行id，以及月份，获取指定月份该银行成交的明细，提交信息为空!");
            return BaseResult.error().message("根据银行id，以及月份，获取指定月份该银行成交的明细，提交信息为空!");
        }

        if (!adminUtilsService.isGM(uid)) {
            log.error("该用户非总经理身份!");
            return BaseResult.error().message("该用户非总经理身份!");
        }

        return loanService.getTradeInfo(uid,bid,monthT);
    }
}
